package cn.sdhuijin.service;

import java.util.List;

import org.springframework.data.domain.Page;

import cn.sdhuijin.model.LoanOperateHistory;
import cn.sdhuijin.model.OfficialLoan;

/**
 * 
 * @author houyc
 *
 */
public interface LoanService {

	/**
	 * 加载贷款申请列表显示
	 * 
	 * @param start
	 *            开始位置
	 * @param limit
	 *            每页的数量
	 * @param startDate
	 *            申请日期查询--起始日期
	 * @param endDate
	 *            申请日期查询--结束日期
	 * @param status
	 *            申请状态
	 * @param telephone
	 *            处理的业务人员的手机号
	 * @return
	 */
	public Page<OfficialLoan> ListApplyInfo(int start, int limit,
			String customName, String startDate, String endDate, String status,
			String telephone);

	/**
	 * 通过指定ID获取该申请详情
	 * 
	 * @param selectId
	 *            贷款申请ID
	 * @return 申请详情
	 */
	public OfficialLoan searchOne(String selectId);

	/**
	 * 保存客户申请信息
	 * 
	 * @param loan
	 * @return
	 */
	public boolean saveCustomApplyInfo(OfficialLoan loan);

	/**
	 * 保存公务员贷款申请操作记录，电话再次联系
	 * 
	 * @param applyId
	 *            申请ID
	 * @param applyType
	 *            申请类别
	 * @param remarks
	 *            备注
	 * @param opetateDate
	 *            操作日期
	 * @param operateName
	 *            操作名称
	 * @param currentState
	 *            申请状态
	 * @return
	 */
	public boolean saveRecallOperateHistory(String applyId, String applyType,
			String remarks, String opetateDate, String operateName,
			String currentState);

	/**
	 * 保存公务员贷款申请操作记录，成功办理
	 * 
	 * @param applyId
	 *            申请ID
	 * @param applyType
	 *            贷款申请类别
	 * @param remarks
	 *            备注
	 * @param opetateDate
	 *            操作日期
	 * @param operateName
	 *            操作名称
	 * @param currentState
	 *            申请状态
	 * @return
	 */
	public boolean saveSuccessOperateHistory(String applyId, String applyType,
			String remarks, String opetateDate, String operateName,
			String currentState);

	/**
	 * 保存公务员贷款申请操作记录，未成功办理
	 * 
	 * @param applyId
	 *            申请ID
	 * @param applyType
	 *            贷款申请类别
	 * @param remarks
	 *            备注
	 * @param opetateDate
	 *            操作日期
	 * @param operateName
	 *            操作名称
	 * @param currentState
	 *            申请状态
	 * @param failReason
	 *            未成功办理原因
	 * @return
	 */
	public boolean saveFailOperateHistory(String applyId, String applyType,
			String remarks, String opetateDate, String operateName,
			String currentState, String failReason);

	/**
	 * 转移公务员贷款申请操作记录，转移网点
	 * 
	 * @param applyId
	 *            申请ID
	 * @param applyType
	 *            贷款申请类别
	 * @param remarks
	 *            备注
	 * @param opetateDate
	 *            操作日期
	 * @param operateName
	 *            操作名称
	 * @param currentState
	 *            申请状态
	 * @param branchId
	 *            转移网点ID
	 * @return
	 */
	public boolean saveTransferOperateHistory(String applyId, String applyType,
			String remarks, String opetateDate, String operateName,
			String currentState, String branchId);

	/**
	 * 获取贷款申请操作历史记录
	 * 
	 * @param applyId
	 *            申请ID
	 * @param applyType
	 *            申请类别
	 * @return
	 */
	public List<LoanOperateHistory> getOperateHistoryList(String applyId,
			String applyType);

	/**
	 * 通过客户手机号查询客户申请贷款记录
	 * 
	 * @param telphone
	 *            客户手机号
	 * @return
	 */
	public List<OfficialLoan> searchCustomApplyListByTelphone(String telphone);

	/**
	 * 保存客户评价信息
	 * 
	 * @param loan
	 * @return
	 */
	public boolean saveCustomEvaluateInfo(OfficialLoan loan);

}
